package com.offics.loan.application.dto.bankcard;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

/**
 * 添加银行卡请求
 */
@Data
public class AddBankCardRequest {

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /**
     * 银行卡号
     */
    @NotBlank(message = "银行卡号不能为空")
    @Pattern(regexp = "^\\d{16,19}$", message = "银行卡号格式不正确")
    private String cardNo;

    /**
     * 银行名称
     */
    @NotBlank(message = "银行名称不能为空")
    private String bankName;

    /**
     * 银行代码
     */
    private String bankCode;

    /**
     * 持卡人姓名
     */
    @NotBlank(message = "持卡人姓名不能为空")
    private String holderName;

    /**
     * 预留手机号
     */
    @NotBlank(message = "预留手机号不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String phone;

    /**
     * 卡类型（0-储蓄卡，1-信用卡）
     */
    @NotNull(message = "卡类型不能为空")
    private Integer cardType;

    /**
     * 是否默认（0-否，1-是）
     */
    private Integer isDefault;
}